Connection oriented services require establishment of a connection between the origin and destination before transferring data. Usually, the connection is established as a path of links through intermediate nodes in a network. When the connection is established, maintained and taken down using inband control signaling, then it is called a Switched Virtual Circuit (SVC). The creation, maintenance and eventually release of a connection between two end-points in a network, is referred to as an SVC session.
The nodes of a network that participate in an SVC session must share a control signaling protocol. In the Asynchronous Transfer Mode (ATM) suite of protocols, that control signaling protocol is ITU-T Recommendation Q.2931. The signaling protocol specifies several vital aspects of an SVC session, including the call-reference identifier (ID) of the session, the sequence of messages that must be exchanged, the rules for verifying consistency of the parameters in the message, and the actions to be taken in order to establish and release SVCs.
Implementing a signaling protocol involves each node receiving and processing signaling messages sent by other nodes. This function is achieved on many ATM nodes by placing, on each card that has one or more ports, a high-performance embedded computing system. Each card's computing system processes only control signaling messages that originate from ports located on the same card. This one-processor-per-card architecture can allow the switch to rapidly process signaling information since each card is given its own processor. It also allows for the signaling processing capacity to vary from node to node according to the number of ports and the link-speed of each port being supported on each node.
The same architecture suffers from several drawbacks however, including the high costs of providing a computing system for each card on the node, of coordinating a plurality of computing systems on one node, and of upgrading the signaling processing capacity in response to technological advances in computing technology.
This one-processor-per-card architecture also suffers from the inability to distribute signaling processing loads evenly amongst all the computing systems on each node. This is because signaling information going into a given card can only be processed by the embedded computing system that is serving that card. Under-utilization of the node's computing systems results whenever the demand for signaling processing is not at maximum-supported levels for each card.
Additionally, the one-processor-per-card architecture is not very fault-tolerant, since it is economically unfeasible to maintain redundant computing systems for every card on a switch. Should a card's computing system fail, the usual result is the inability of any of the ports attached to that card to process signaling messages.
In light of the foregoing drawbacks, some nodes use another architecture that calls for a single computing system to process signaling messages flowing through all the cards of a node. This architecture requires splitting the node into two parts--a switching element (SE) and a computing unit (CU). Generally, an SE is an ATM switching platform with many cards that interconnects various ATM links to each other. A CU is a computing platform that implements software control functions for all hardware components on the SE. These software control functions include signaling, in addition to other functions such as operations, administration and maintenance (OA&M). The CU is connected to its associated SE through a dedicated high-speed link, such as an ATM link or Ethernet link.
From a signaling perspective, the SE contains all the cards and ports where signaling messages enter and leave the node. The CU processes all the signaling information for all the ports and cards of the SE. Hardware on the SE relays signaling messages to and from the CU.
Under this architecture, cards on the SE do not need to have embedded computing systems for signaling purposes. They only need to be able to deliver the signaling messages to the CU. The CU processes these messages and then instructs the SE as to what actions to take, or relays signaling messages destined for other nodes back through the SE for transmission across network links.
Unlike the one-processor-per-card architecture, this one-processor-per-node architecture results in lower computer processing costs, and higher computer utilization rates. If a stand-by CU is maintained, this architecture also exhibits increased fault-tolerance relative to the one-signaling-processor-per-port architecture.
Even this one-processor-per-node architecture suffers from significant drawbacks however, including a lack of support for a scalable signaling processing capacity. As more cards are added or as the signaling traffic through existing cards increases, there is no graceful way to grow the single processor computing system on the CU to accommodate this increased demand without suffering through expensive upgrades of the CU.
To function effectively, a signaling protocol relies on the proper operation of several known underlying protocols, including physical layer protocols, ATM layer protocols, the Common Part ATM Adaptation Layer (CP-AAL) protocols, and Signaling ATM Adaptation Layer (SAAL) protocols. The SAAL protocols are particular to signaling applications, and include the Service Specific Coordination Function (SSCF) and the Service Specific Connection-Oriented Protocol (SSCOP). The SSCF provides many services to the software that implements the signaling protocol (e.g. the Q.2931 protocol) including independence from the underlying protocols, unacknowledged data transfer mode, and assured data transfer mode. The SSCOP, in turn, provides many services to the software that implements the SSCF protocol such as ordered delivery, error correction and receiver-based flow control.